package com.soyotec.algorithm.util;

import com.soyotec.algorithm.value.DoubleValue;
import com.soyotec.algorithm.value.IntegerValue;
import com.soyotec.algorithm.value.Limit;
import com.soyotec.algorithm.value.StringValue;

public class RandValueUtil {
    /**
     * 普通字符串初始值就是空字符串
     * @param limit
     * @return
     */
    public static String initValueString(Limit<StringValue> limit){
//        if(limit.isDiscrete()){
//            int lower=0;
//            int upper=limit.getRange().size()-1;
//            int index=SoyoRandom.getInstance().nextInt(lower,upper);
//            return limit.getRange().get(index).getStringValue();
//        }
//        else{
//            return "";
//        }
        return "";
    }

    public static Double initValueDouble(Limit<DoubleValue> limit){
//        if(limit.isDiscrete()){
//            int lower=0;
//            int upper=limit.getRange().size()-1;
//            int index=SoyoRandom.getInstance().nextInt(lower,upper);
//            return limit.getRange().get(index).getValue();
//        }
//        else{
//            return SoyoRandom.getInstance().nextDouble(limit.getLowerBound().getDoubleValue(),
//                    limit.getUpperBound().getDoubleValue());
//        }
        return SoyoRandom.getInstance().nextDouble(limit.getLowerBound().getDoubleValue(),
                    limit.getUpperBound().getDoubleValue());
    }
    public static Integer initValueInteger(Limit<IntegerValue> limit){
//        if(limit.isDiscrete()){
//            int lower=0;
//            int upper=limit.getRange().size()-1;
//            int index=SoyoRandom.getInstance().nextInt(lower,upper);
//            return limit.getRange().get(index).getIntegerValue();
//        }
//        else{
//            return SoyoRandom.getInstance().nextInt(limit.getLowerBound().getIntegerValue(),
//                    limit.getUpperBound().getIntegerValue());
//        }
        return SoyoRandom.getInstance().nextInt(limit.getLowerBound().getIntegerValue(),
                    limit.getUpperBound().getIntegerValue());
    }
}
